def Two_sum(x, y):  # 简单的两数先加函数
    return x + y


print(Two_sum(23, 93))

# 使用lambda定义函数
fun = lambda x, y: x + y
result = fun(23, 93)
print(result)

a = [1, 2, 3, 4, 5]
result = map(lambda x: x ** 3, a)  # map函数，将列表a中的每一个元素去除来，然后进行lambda函数中的操作
print(list(result))  # 转成列表来接收

# reduce累加,可以自定义元素间执行的操作,
# reduce 函数会把序列中的元素逐个传递给指定的函数，并且将前一次函数调用的结果作为下一次调用的第一个参数。
from functools import reduce

result = reduce(lambda x, y: x * y, a)
print(result)

# filter 过滤
result = filter(lambda i: i % 2 != 0, a)  # 取出奇数
print(list(result))

a = [1, 21, 0, 32, 0, 71, 84]
result = filter(lambda x: x != 0, a)
print(list(result))

result = 0
mul = 1
for i in a[::-1]:
    result += i * mul
    mul = mul * 10 ** len(str(i))
print(result)

result = reduce(lambda x, y: x * 10**len(str(y)) + y, a)
print(result)
